A software virtual switch operating on a host in a datacenter will often have dozens of VMs directly connected, resulting in the virtual switch seeing thousands or even millions of packets per second. For flow-based software switching elements, numerous flow entries are required to handle all the different possible packets that might be processed. The flow entries used by such switches to process the packets are designed such that they require matching over single values for a particular field, although one flow entry may match over multiple different fields. When a switch needs to perform matches over several possible values for each of multiple packet header fields, this may cause an explosion of flow entries. As such, methods for reducing the number of flow entries in an efficient manner are needed.